JavaScript Variables
The Evolution from var to
let &
const
var
ES5 時代的產物。缺乏區塊作用域 (Block Scope),容易造成變數外洩
(Leak)。
if (true) {
var x =
"I escaped!";
}
console.log(x);
等待執行...
let
ES6 引入。具有區塊作用域 { },且允許後續重新賦值
(Reassign)。
let score =
100;
score = 80;
if (true) {
let y =
"Safe inside";
}
console.log(y);
等待執行...
const
ES6 引入。宣告後「不能重新賦值」,現代前端開發的首選預設值。
const PI =
3.14;
PI = 3.14159;
const user = { name:
"Rui" };
user.name = "Jeremy";
console.log(user.name);
等待執行...